defined type
定義
次のいずれかがdefined typeである:
type definition(型定義)
によって宣言された型
例えば
type MyType int
と書いたときの
MyType
は defined type
int
,
bool
,
string
などの
事前宣言された型
別の定義もしくは判定法
type literals(型リテラル)
以外の全ての型はdefined typeである
[]int
は型リテラルなのでdefined typeではない
他との関連性
assignability(代入可能性)
の成立条件に使われている
method declarations(メソッド宣言)
でreceiver base typeになれるための必要条件になっている
解説
defined typeは仕様書を読むときに非常によく出てくる概念なのに仕様書上ですっきりした完全な定義が書かれていない
https://golang.org/ref/spec#Type_definitions
を読むと
type definition(型定義)
を使って宣言した新しい型のみがdefined typeであるかのように読めるがこれだと
int
などが含まれない
例題
なぜこんなふうになっているのか
defined type 解説アウトライン